package com.project.controller;

import com.github.pagehelper.PageInfo;
import com.project.bean.ProductBean;
import com.project.service.IProductService;
import com.project.util.MultipartFileUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;
import java.time.LocalDate;

/**
 * @Author(王思翰)
 * @Description(类的描述)
 * @Date(创建时间) 2021/8/2 11:40
 */
@RestController
@RequestMapping("product")
public class ProductController {
    @Autowired
    private IProductService service;

    /**
     * 动态查询商品信息，同时统计商品的选购数量，并作分页展示
     *
     * @param pageNo    页码
     * @param name      商品名
     * @param startDate 开始日期
     * @param endDate   结束日期
     * @return 分页对象
     */
    @RequestMapping("findByItem")
    public PageInfo<ProductBean> findByItem(int pageNo, String name,
                                            LocalDate startDate, LocalDate endDate) {
        return service.findByItem(pageNo,name,startDate,endDate,"上架");

    }

    /**
     * 根据商品id查询单个商品信息，同时统计商品的选购数量
     * @param id
     * @return
     */
    @RequestMapping("findById")
    public ProductBean findById(int id){
       return service.findbById(id);
    }

    @RequestMapping("findByItemAss")
    public PageInfo<ProductBean> findByItemAss(int pageNo, String name,
                                            LocalDate startDate, LocalDate endDate) {
        return service.findByItem(pageNo,name,startDate,endDate,null);

    }

    /**
     * 将指定商品的状态改为下架
     * @param id 商品id
     */
    @RequestMapping("updateOfStatus")
    public String updateOfStatus(int id){
        service.updateOfStatus(id);
        return "ok";
    }

    /**
     * 添加商品
     * @param productBean
     */
    @RequestMapping("add")
    public String add(ProductBean productBean,@RequestParam("face") MultipartFile mt) throws IOException {
        productBean.setImg(MultipartFileUtil.play(mt,"static/html/img"));
        service.add(productBean);
        return "ok";
    }
}
